module.exports = (options, app) => {
    return async function(ctx, next){
        // 拿到白名单
        const routerAuth = app.config.routerAuth;
        // 获取当前路由
        let url = ctx.url;
        // 判断当前路由是不是在白名单内
            // includes 会返回一个布尔值
        let flag = routerAuth.includes(url);
        if(flag) return next();
        // 获取当前token 如果没有 则为空
        let token = ctx.headers.authorization ? ctx.headers.authorization : "";
        try{
            let decode = await app.jwt.verify(token, app.config.jwt.secret);
            ctx.state.userinfo = decode
            return next();
        }catch(e){
            ctx.status = 401;
            ctx.body = {
                code: 401,
                message: "token失效或解析错误",
                data: null
            }
        }

    }
}